package com.xygz.orm;

import com.xygz.orm.enums.DbType;

/**
 * 数据库服务信息
 *
 * @author xiyuan-lgz 2023-11-11 @version v1.0.0 新建与整理
 */
@SuppressWarnings("all")
public interface ServerInfo {
    /**
     * 获取数据库类型
     *
     * @return 数据库类型枚举
     */
    public DbType getDbType();
    
    /**
     * 获取数据库名称
     * 例如：Microsoft SQL Server， MySQL,Oracle 等
     *
     * @return 数据库名称
     */
    public String getProductName();
    
    
    /**
     * 获取数据库 版本字符串
     * <p>
     * 例如：MySQl 5.7.34-log
     *
     * @return 数据版本信息
     */
    public String getProductVersion();
    
    
    /**
     * 获取数据版本 主版本
     * <p>
     * 例如：数据库版本MySQL5.7, 则返回 5
     *
     * @return 数据库主版本
     */
    public int getProductMajorVersion();
    
    /**
     * 获取数据版本 次版本
     * <p>
     * 例如：数据库版本MySQL5.7, 则返回 7
     *
     * @return 数据库次版本
     */
    public int getProductMinorVersion();
    
    /**
     * 是否允许 是否支持事务
     *
     * @return true | false
     */
    public boolean isSupportsTransactions();
}
